<?php

namespace Togetwzb\Yii2\Aliyun\Oss\filters;

use yii\base\InvalidConfigException;
use yii\validators\Validator;

/**
 * 文件处理器，包含：
 * 1、检查文件存在
 * 2、远程文件迁移改名
 */
class FileExistValidator extends Validator
{
    public $message = '文件不存在';

    /**
     * @var callable 返回bool，true存在，false不存在
     */
    public $fileExistCallback;


    public function init()
    {
        parent::init();
        if (!is_callable($this->fileExistCallback)) {
            throw new InvalidConfigException('fileExistCallback is not a callback function');
        }
    }

    protected function validateValue($value)
    {
        $callback = $this->fileExistCallback;
        if ($callback($value)) {
            return [$this->message];
        }
        return null;
    }
}